Color scheme generator for web applications

ABSTRACT

A computing system includes a memory and a processor. The processor is configured to generate a color scheme by determining distances between colors in a source set of colors to be used in the color scheme, and determining positions of colors in a target set of colors that can be replaced with the colors in the source set of colors. Deltas are determined between distances in the replaced colors and the distances in the source set of colors for the determined positions. One of the positions to be used as the color scheme is selected based on the deltas being minimized with respect to the deltas for the other determined positions.

RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.16/749,113 filed Jan. 22, 2020, now U.S. Pat. No. 11,216,527, which is acontinuation of U.S. application Ser. No. 16/108,381 filed Aug. 22,2018, now U.S. Pat. No. 10,546,039, which are hereby incorporated hereinin their entirety by reference.

TECHNICAL FIELD

The present disclosure relates to color scheme generators, and moreparticularly, to a color scheme generator for customizing colors in aweb application.

BACKGROUND

Most enterprises would like their web applications to be made availablewith customized color schemes. The customized color schemes may reflectcustom logos, for example. Customized color schemes for web applicationsallow for better customer experiences.

Each web application includes a number of web pages, and each web pageis to be customized by hand. A style sheet for each web page is modifiedto reflect a particular customized color scheme. Building, configuringand testing color schemes for web applications can be a time consumingprocess.

SUMMARY

A computing system includes a memory, and a processor coupled to thememory and configured to generate a color scheme by determiningdistances between colors in a source set of colors to be used in thecolor scheme, and determining positions of colors in a target set ofcolors that can be replaced with the colors in the source set of colors.The processor is further configured to determine deltas betweendistances in the replaced colors and the distances in the source set ofcolors for the determined positions, and select one of the positions tobe used as the color scheme based on the deltas being minimized withrespect to the deltas for the other determined positions.

The processor may be further configured to replace the colors in thetarget set of colors with the colors in the selected position.

The target set of colors may be associated with a web application, andwherein the processor may be further configured to generate a stylesheetto map the source set of colors to the target set of colors based on thecolors in the selected position, with the stylesheet being applied anext time the web application is accessed.

The web application includes a plurality of web pages, and wherein theprocessor may be further configured to inspect the plurality of webpages until all colors in all components of the stylesheet are mapped tothe source set of colors to achieve consistency over the plurality ofweb pages.

The processor may be further configured to adjust the colors in theselected position based on user input.

The distances between the colors in the source set of colors and thedistances in the replaced colors for each position may be limited toadjacent colors.

The processor may be configured to determine the respective distancesusing at least one of the following distance determination methods: anRGB Euclidian distance method, a Cielab Delta E method, and a colortolerance distance method.

The computing system may further include a user interface coupled to theprocessor, and a display coupled to the processor. The processor may befurther configured to repeat the determining and selecting steps foreach distance determination method, and display the selected positionsfor each distance determination method. The selected position associatedwith one of the distance determination methods that is to be used as thecolor scheme may be selected based on input from the user interface.

The processor may be further configured to determine the source set ofcolors based on analyzing at least one of the following: color schemesin a source web application, color schemes in a logo, and a user definedcolor scheme.

In response to the source set of colors being monochrome, the processormay be further configured to generate variants of the monochrome colorsso as to expand the source set of colors.

Another aspect is directed to a method that includes determiningdistances between colors in a source set of colors to be used in a colorscheme, determining positions of colors in a target set of colors thatcan be replaced with the colors in the source set of colors, anddetermining deltas between distances in the replaced colors and thedistances in the source set of colors for the determined permutations.One of the positions to be used as the color scheme may be selectedbased on the deltas being minimized with respect to the deltas for theother determined positions.

Yet another aspect is directed to a non-transitory computer readablemedium for operating a computing system to generate a color scheme, andwith the non-transitory computer readable medium having a plurality ofcomputer executable instructions for causing the computing system toperform the steps as described above.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a network environment of computing devicesin which various aspects of the disclosure may be implemented.

FIG. 2 is a block diagram of a computing device useful for practicing anembodiment of the client machines or the remote machines illustrated inFIG. 1.

FIG. 3 is a block diagram of a computing system for generating a customcolor scheme for a web application in which various aspects of thedisclosure may be implemented.

FIG. 4 are screen shots illustrating a source set of colors to be mappedto a target set of colors for generating the custom color scheme for theweb application illustrated in FIG. 3.

FIG. 5 is a flowchart illustrating a method for generating a customcolor scheme for a web application using the server illustrated in FIG.3.

DETAILED DESCRIPTION

The present description is made with reference to the accompanyingdrawings, in which exemplary embodiments are shown. However, manydifferent embodiments may be used, and thus the description should notbe construed as limited to the particular embodiments set forth herein.Rather, these embodiments are provided so that this disclosure will bethorough and complete. Like numbers refer to like elements throughout.

As will be appreciated by one of skill in the art upon reading thefollowing disclosure, various aspects described herein may be embodiedas a device, a method or a computer program product (e.g., anon-transitory computer-readable medium having computer executableinstruction for performing the noted operations or steps). Accordingly,those aspects may take the form of an entirely hardware embodiment, anentirely software embodiment or an embodiment combining software andhardware aspects.

Furthermore, such aspects may take the form of a computer programproduct stored by one or more computer-readable storage media havingcomputer-readable program code, or instructions, embodied in or on thestorage media. Any suitable computer readable storage media may beutilized, including hard disks, CD-ROMs, optical storage devices,magnetic storage devices, and/or any combination thereof.

Referring initially to FIG. 1, a non-limiting network environment 101 inwhich various aspects of the disclosure may be implemented includes oneor more client machines 102A-102N, one or more remote machines106A-106N, one or more networks 104, 104′, and one or more appliances108 installed within the computing environment 101. The client machines102A-102N communicate with the remote machines 106A-106N via thenetworks 104, 104′.

In some embodiments, the client machines 102A-102N communicate with theremote machines 106A-106N via an intermediary appliance 108. Theillustrated appliance 108 is positioned between the networks 104, 104′and may be referred to as a network interface or gateway. In someembodiments, the appliance 108 may operate as an application deliverycontroller (ADC) to provide clients with access to business applicationsand other data deployed in a datacenter, the cloud, or delivered asSoftware as a Service (SaaS) across a range of client devices, and/orprovide other functionality such as load balancing, etc. In someembodiments, multiple appliances 108 may be used, and the appliance(s)108 may be deployed as part of the network 104 and/or 104′.

The client machines 102A-102N may be generally referred to as clientmachines 102, local machines 102, clients 102, client nodes 102, clientcomputers 102, client devices 102, computing devices 102, endpoints 102,or endpoint nodes 102. The remote machines 106A-106N may be generallyreferred to as servers 106 or a server farm 106. In some embodiments, aclient device 102 may have the capacity to function as both a clientnode seeking access to resources provided by a server 106 and as aserver 106 providing access to hosted resources for other client devices102A-102N. The networks 104, 104′ may be generally referred to as anetwork 104. The networks 104 may be configured in any combination ofwired and wireless networks.

A server 106 may be any server type such as, for example: a file server;an application server; a web server; a proxy server; an appliance; anetwork appliance; a gateway; an application gateway; a gateway server;a virtualization server; a deployment server; a Secure Sockets LayerVirtual Private Network (SSL VPN) server; a firewall; a web server; aserver executing an active directory; or a server executing anapplication acceleration program that provides firewall functionality,application functionality, or load balancing functionality.

A server 106 may execute, operate or otherwise provide an applicationthat may be any one of the following: software; a program; executableinstructions; a virtual machine; a hypervisor; a web browser; aweb-based client; a client-server application; a thin-client computingclient; an ActiveX control; a Java applet; software related to voiceover internet protocol (VoIP) communications like a soft IP telephone;an application for streaming video and/or audio; an application forfacilitating real-time-data communications; a HTTP client; a FTP client;an Oscar client; a Telnet client; or any other set of executableinstructions.

In some embodiments, a server 106 may execute a remote presentationclient or other client or program that uses a thin-client or aremote-display protocol to capture display output generated by anapplication executing on a server 106 and transmits the applicationdisplay output to a client device 102.

In yet other embodiments, a server 106 may execute a virtual machineproviding, to a user of a client device 102, access to a computingenvironment. The client device 102 may be a virtual machine. The virtualmachine may be managed by, for example, a hypervisor, a virtual machinemanager (VMM), or any other hardware virtualization technique within theserver 106.

In some embodiments, the network 104 may be: a local-area network (LAN);a metropolitan area network (MAN); a wide area network (WAN); a primarypublic network 104; and a primary private network 104. Additionalembodiments may include a network 104 of mobile telephone networks thatuse various protocols to communicate among mobile devices. For shortrange communications within a WLAN, the protocols may include 802.11,Bluetooth, and Near Field Communication (NFC).

FIG. 2 depicts a block diagram of a computing device 100 useful forpracticing an embodiment of client devices 102 or servers 106. Thecomputing device 100 includes one or more processors 103, volatilememory 122 (e.g., random access memory (RAM)), non-volatile memory 128,user interface (UI) 123, one or more communications interfaces 118, anda communications bus 150.

The non-volatile memory 128 may include: one or more hard disk drives(HDDs) or other magnetic or optical storage media; one or more solidstate drives (SSDs), such as a flash drive or other solid state storagemedia; one or more hybrid magnetic and solid state drives; and/or one ormore virtual storage volumes, such as a cloud storage, or a combinationof such physical storage volumes and virtual storage volumes or arraysthereof.

The user interface 123 may include a graphical user interface (GUI) 124(e.g., a touchscreen, a display, etc.) and one or more input/output(I/O) devices 126 (e.g., a mouse, a keyboard, a microphone, one or morespeakers, one or more cameras, one or more biometric scanners, one ormore environmental sensors, and one or more accelerometers, etc.).

The non-volatile memory 128 stores an operating system 115, one or moreapplications 116, and data 117 such that, for example, computerinstructions of the operating system 115 and/or the applications 116 areexecuted by processor(s) 103 out of the volatile memory 122. In someembodiments, the volatile memory 122 may include one or more types ofRAM and/or a cache memory that may offer a faster response time than amain memory. Data may be entered using an input device of the GUI 124 orreceived from the I/O device(s) 126. Various elements of the computer100 may communicate via the communications bus 150.

The illustrated computing device 100 is shown merely as an exampleclient device or server, and may be implemented by any computing orprocessing environment with any type of machine or set of machines thatmay have suitable hardware and/or software capable of operating asdescribed herein.

The processor(s) 103 may be implemented by one or more programmableprocessors to execute one or more executable instructions, such as acomputer program, to perform the functions of the system. As usedherein, the term “processor” describes circuitry that performs afunction, an operation, or a sequence of operations. The function,operation, or sequence of operations may be hard coded into thecircuitry or soft coded by way of instructions held in a memory deviceand executed by the circuitry. A processor may perform the function,operation, or sequence of operations using digital values and/or usinganalog signals.

In some embodiments, the processor can be embodied in one or moreapplication specific integrated circuits (ASICs), microprocessors,digital signal processors (DSPs), graphics processing units (GPUs),microcontrollers, field programmable gate arrays (FPGAs), programmablelogic arrays (PLAs), multi-core processors, or general-purpose computerswith associated memory.

The processor may be analog, digital or mixed-signal. In someembodiments, the processor may be one or more physical processors, orone or more virtual (e.g., remotely located or cloud) processors. Aprocessor including multiple processor cores and/or multiple processorsmay provide functionality for parallel, simultaneous execution ofinstructions or for parallel, simultaneous execution of one instructionon more than one piece of data.

The communications interfaces 118 may include one or more interfaces toenable the computing device 100 to access a computer network such as aLocal Area Network (LAN), a Wide Area Network (WAN), a Personal AreaNetwork (PAN), or the Internet through a variety of wired and/orwireless connections, including cellular connections.

In described embodiments, the computing device 100 may execute anapplication on behalf of a user of a client device. For example, thecomputing device 100 may execute one or more virtual machines managed bya hypervisor. Each virtual machine may provide an execution sessionwithin which applications execute on behalf of a user or a clientdevice, such as a hosted desktop session. The computing device 100 mayalso execute a terminal services session to provide a hosted desktopenvironment. The computing device 100 may provide access to a remotecomputing environment including one or more applications, one or moredesktop applications, and one or more desktop sessions in which one ormore applications may execute.

Additional descriptions of a computing device 100 configured as a clientdevice 102 or as a server 106, or as an appliance intermediary to aclient device 102 and a server 106, and operations thereof, may be foundin U.S. Pat. Nos. 9,176,744 and 9,538,345, which are incorporated hereinby reference in their entirety. The '744 and '345 patents are bothassigned to the current assignee of the present disclosure.

Referring initially to FIG. 3, a computing system 20 for generating acustom color scheme 40 for a web application 34 will be discussed. Thecustom color scheme 40 is automatically generated by a server 30 thatexecutes a color scheme generator algorithm 32. The web application 34may be a Software as a Service (SaaS) application, for example. Eachtime an update is made to the SaaS application, for example, then a newcustom color scheme 40 is to be individually generated for the updatedSaaS application so as to match the custom color scheme 40 in the SaaSapplication before the update. This automation based on the color schemegenerator algorithm 32 speeds up the color customization process whichis typically done by hand.

The illustrated computing system 20 includes a server 30 and at leastone computing device 50. The server 30 includes the color schemegenerator algorithm 32 used to determine a source set of colors 36 and atarget set of colors 38. As will be explained in detail below,determination of the custom color scheme 40 to be used in the webapplication 34 is based on the color scheme generator algorithm 32determining color position permutations 42, color separation distances44 and deltas 46 between the color separation distances 44 for thedifferent color position permutations 42.

The computing device 50 includes a browser 56 for accessing the colorscheme generator algorithm 32 in the server 30. A display 54 is todisplay the custom color scheme 40 to be used in the web application 34.A user interface 52 is to provide user input to the color schemegenerator algorithm 32 as needed.

Execution of the color scheme generator algorithm 32 for generating thecustom color scheme 40 for the web application 34 includes determining asource set of colors 36 to be used in the custom color scheme 40,determining color separation distances 44 between colors in the sourceset of colors 36, and determining a target set of colors 38 in the webapplication 34.

The color scheme generator algorithm 32 determines color positionpermutations 42 of the colors in the target set of colors 38 that can bereplaced with the colors in the source set of colors 36. For each colorposition permutation 42, color separation distances 44 are determinedbetween the replaced colors. For each color position permutation 42,deltas 46 between the color separation distances in the replaced colorsand the color separation distances 46 in the source set of colors 36 aredetermined.

The color scheme generator algorithm 32 selects one of the colorposition permutations 42 based on the deltas 46 being minimized withrespect to the deltas 46 for the other color position permutations 42.The selected color position permutation 42 is to be used as the customcolor scheme 40 for the web application 34.

The custom color scheme 40 is thus used to map the source set of colors36 to the target set of colors 38. The color scheme generator algorithm32 generates a custom color scheme 40 for each web page 25 within theweb application 34. In real time, the color scheme generator algorithm32 generates an application page with the original source set of colors36 and the web page 25 in the proposed custom color scheme 40.

This is an opportunity for a user of the computing device 50 to reviewthe appearance of both the web page 35 with the proposed custom colorscheme 40 applied and the source set of colors 36. The color schemegenerator algorithm 32 is configured to adjust, if needed, the colors inthe proposed custom color scheme 40 based on input from the userinterface.

Referring now to FIG. 4, generation of an example custom color scheme 40for the web application 34 will be discussed. The color scheme generatoralgorithm 32 first determines the source set of colors 36. The sourceset of colors 36 may be determined a number of different ways.

One approach is for the color scheme generator algorithm 32 to analyzecolor schemes in a source web application. This is accomplished bycrawling the source web application to analyze color schemes in dialogsthat fit enterprise or corporate requirements. Another approach is toanalyze the color scheme of a logo. Yet another approach is to provide auser defined color scheme to the color scheme generator algorithm 32.These approaches are examples and are not to be limiting. If the sourceset of colors 36 is monochrome, then execution of the color schemegenerator algorithm 32 further includes generating variants of themonochrome colors so as to expand the source set of colors 36.

An example source set of colors 36 is provided in screen shot 200. Thesource set of colors 36 includes blue for display section 202, lightblue for display section 204, and gray for display section 206. Inaddition, anyone of the sections may include text. For example, displaysection 206 may include black text with a gray background.

After the source set of colors 36 has been determined, then the colorscheme generator algorithm 32 determines color separation distances 44between colors in the source set of colors 36. The color separationdistances 44 may be determined using anyone of a number of differentcolor distance determination methods. The color scheme generatoralgorithm 32 may use a RGB Euclidian distance method, a Cielab Delta Emethod, or a color tolerance distance method, for example. These examplecolor distance determination methods are not to be limiting as othercolor distance determination methods may be used by the color schemegenerator algorithm 32.

Using screen shot 200 as an example, color separation distances for thesource set of colors 36 are determined between display sections 202 and204, between display sections 202 and 206, and between display sections204 and 206. The color separation distances 44 are used by the colorscheme generator algorithm 32 to determine color contrasts for thecolors in the source set of colors 36. Color contrasts between the textand the background are also determined. Maintaining a similar contrastin the custom color scheme 40 that is to be applied to the webapplication 34 is necessary for providing a pleasant user experience.

Next, the color scheme generator algorithm 32 analyzes color schemes inthe web application 34 to determine the target set of colors 38. This isaccomplished by crawling the web application 34 to analyze color schemesin its dialogs. The web application 34 may also be referred to as thetarget web application.

An example target set of colors 38 is provided in screen shot 210. Thescreen shot 210 corresponds to a particular web page 35 within the webapplication 34. The target set of colors 38 includes red for displaysection 212, purple for display section 214, and white for displaysection 206. In addition, anyone of the sections may include text. Forexample, display section 216 may include black text with a whitebackground.

After the target set of colors 38 has been determined, the color schemegenerator algorithm 32 determines color position permutations 42 of thecolors in the target set of colors 38 that can be replaced with thecolors in the source set of colors 36. For example, one color positionpermutation 42 includes display section 212 being replaced by blue,display section 214 being replaced by light blue, and display section216 being replaced by gray. A next color position permutation 42includes display section 212 remaining blue but swapping the light blueand gray between display sections 214 and 216.

Yet another color position permutation 42 includes display section 212being replaced by light blue, display section 214 being replaced byblue, and display section 216 being replaced by gray. A next colorposition permutation 42 includes display section 212 remaining lightblue but swapping the blue and gray between display sections 214 and216. Determination of the color position permutations 42 continues untilall possible color combinations 42 have been determined.

For each color position permutation 42, the color scheme generatoralgorithm 32 determines color separation distances 44 between thereplaced colors. This is similar to the color scheme generator algorithm32 determining color separation distances between the colors in thesource set of colors 36.

The color separation distances 44 for each color position permutation 42are determined using the same color distance determination method usedfor determining the color separation distances 44 for the source set ofcolors 36. As noted above, the color separation distances 44 are used bythe color scheme generator algorithm 32 to determine color contrasts forthe colors in the source set of colors 36 as well as color contrasts forthe colors in each of the color position permutations 42.

For each color position permutation 42, the color scheme generatoralgorithm 32 determines deltas 46 between the color separation distances44 in the replaced colors and the color separation distances 44 in thesource set of colors 36. The color scheme generator algorithm 32 thenselects one of the color position permutations 42 based on the deltas 46being minimized with respect to the deltas 46 for the other colorposition permutations 42.

As an example, if the deltas 46 between the color separation distances44 in the replaced colors in one of the color position permutations 42and the color separation distances 44 in the source set of colors 36 arehigh, then this color position permutation 42 would not provide for apleasant user experience. The contrast between the colors as arranged inthe color position permutation 42 is not comparable to the contrast ofcolors in the source set of colors 36.

Conversely, if the deltas 46 between the color separation distances 44in the replaced colors in one of the color position permutations 42 andthe color separation distances 44 in the source set of colors 36 arelow, then this color position permutation 42 would provide for apleasant user experience.

Based on the color separation distanced deltas 46 between each colorposition permutation 42 and the source set of colors 36, the colorscheme generator algorithm 32 selects the color position permutation 42having deltas 46 as close to zero as possible when compared to thedeltas 46 for the other color position permutations 42. For the colorposition permutation 42 having the lowest deltas 46, then the contrastof the source colors as mapped into target set of colors 38 more closelymatches the contrast of colors in the original source set of colors 36.

Once the color position permutation 42 has been selected, the colorscheme generator algorithm 32 generates a custom stylesheet using thecustom color scheme 40 corresponding to the color position permutation42 for the web page 35. The custom stylesheet is applied a next time theweb application 34 is accessed.

Since there are multiple web pages 35 in a web application, the colorscheme generator algorithm 32 is configured to repeat the determiningand selecting steps for each web page 35 in the web application 34. Thecolor scheme generator algorithm 32 generates a custom stylesheet usingthe custom color scheme 40 for each web page 35.

In some cases, repeating the entire process each web pages 35 canintroduce inconsistencies. Since most web applications are dynamic thereis typically no finite set of web pages for a web application 34.Alternatively, the server 30 may be configured to inspect the multipleweb pages 35 until all colors in all components of the stylesheet aremapped to the source set of colors 36 to achieve consistency over themultiple web pages.

In one approach, the color separation distances 44 as determined by thecolor scheme generator algorithm 32 are between all colors.Alternatively, the color separation distances 44 as determined by thecolor scheme generator algorithm 32 are limited to adjacent colors.Being limited to adjacent colors reduces the number of color positionpermutations 42.

The color scheme generator algorithm 32 is further configured to repeatthe determining and selecting steps for different color distancedetermination methods. The computing system 50 displays the selectedcolor position permutations 42 for each color distance determinationmethod. Depending on which one of the color distance determinationmethods would provide the most pleasant user experience, as displayed,is selected to be used as the custom color scheme the selection is basedon input from the user interface 40 for the web application 34 based onuser input.

Referring now to the flowchart 300 in FIG. 5, a method for generating acustom color scheme 40 for a web application 34 includes from the start(Block 302) determining a source set of colors 36 to be used in thecustom color scheme 40 at Block 304, and determining color separationdistances 44 between colors in the source set of colors 36 at Block 306.The method further includes determining a target set of colors 38 in theweb application 34 at Block 308.

Color position permutations 42 of the colors in the target set of colors38 that can be replaced with the colors in the source set of colors 36are determined at Block 310. For each color position permutation 42, themethod includes determining color separation distances 44 between thereplaced colors as Block 312. For each color position permutation 42,the method includes determining deltas 46 between the color separationdistances 44 in the replaced colors and the color separation distances44 in the source set of colors 36 at Block 314.

The method further includes at Block 316 selecting one of the colorposition permutations 42 based on the deltas 46 being minimized withrespect to the deltas 46 for the other color position permutations 42.The selected color position permutation 42 is to be used as the customcolor scheme 40 for the web application 34. The method ends at Block318.

Another aspect is directed to a non-transitory computer readable mediumfor operating a server 30 to generate a custom color scheme 40 for a webapplication 34, and with the non-transitory computer readable mediumhaving a plurality of computer executable instructions for causing theserver 30 to perform steps that includes determining a source set ofcolors 36 to be used in the custom color scheme 40, determining colorseparation distances 44 between colors in the source set of colors 36,and determining a target set of colors 38 in the web application 34.

Color position permutations 42 of the colors in the target set of colors38 that can be replaced with the colors in the source set of colors 36are determined. For each color position permutation 42, color separationdistances 44 between the replaced colors are determined. For each colorposition permutation 42, deltas 46 between the color separationdistances 44 in the replaced colors and the color separation distances44 in the source set of colors 36 are determined.

One of the color position permutations 42 is selected based on thedeltas 46 being minimized with respect to the deltas 46 for the othercolor position permutations 42. The selected color position permutation42 is to be used as the custom color scheme 40 for the web application34.

Many modifications and other embodiments will come to the mind of oneskilled in the art having the benefit of the teachings presented in theforegoing descriptions and the associated drawings. Therefore, it isunderstood that the disclosure is not to be limited to the specificembodiments disclosed, and that modifications and embodiments areintended to be included within the scope of the appended claims.

1. A computing system comprising: a memory; and a processor coupled to said memory and configured to generate a color scheme by performing the following: determine distances between colors in a source set of colors to be used in the color scheme, determine positions of colors in a target set of colors that can be replaced with the colors in the source set of colors, determine deltas between distances in the replaced colors and the distances in the source set of colors for the determined positions, and select one of the positions to be used as the color scheme based on the deltas being minimized with respect to the deltas for the other determined positions.
 2. The computing system according to claim 1 wherein said processor is further configured to replace the colors in the target set of colors with the colors in the selected position.
 3. The computing system according to claim 1 wherein the target set of colors is associated with a web application, and wherein said processor is further configured to generate a stylesheet to map the source set of colors to the target set of colors based on the colors in the selected position, with the stylesheet being applied a next time the web application is accessed.
 4. The computing system according to claim 3 wherein the web application includes a plurality of web pages, and wherein said processor is further configured to inspect the plurality of web pages until all colors in all components of the stylesheet are mapped to the source set of colors to achieve consistency over the plurality of web pages.
 5. The computing system according to claim 4 wherein said processor is further configured to adjust the colors in the selected position based on user input.
 6. The computing system according to claim 1 wherein the distances between the colors in the source set of colors and the distances in the replaced colors for each position are limited to adjacent colors.
 7. The computing system according to claim 1 wherein said processor is configured to determine the respective distances using at least one of the following distance determination methods: an RGB Euclidian distance method, a Cielab Delta E method, and a color tolerance distance method.
 8. The computing system according to claim 7 further comprising a user interface coupled to said processor, and a display coupled to said processor, and wherein said processor is further configured to perform the following: repeat the determining and selecting steps for each distance determination method; and display the selected positions for each distance determination method; with the selected position associated with one of the distance determination methods that is to be used as the color scheme is selected based on input from the user interface.
 9. The computing system according to claim 1 wherein said processor is further configured to determine the source set of colors based on analyzing at least one of the following: color schemes in a source web application, color schemes in a logo, and a user defined color scheme.
 10. The computing system according to claim 1 wherein in response to the source set of colors being monochrome, said processor is further configured to generate variants of the monochrome colors so as to expand the source set of colors.
 11. A method comprising: determining distances between colors in a source set of colors to be used in a color scheme; determining positions of colors in a target set of colors that can be replaced with the colors in the source set of colors; determining deltas between distances in the replaced colors and the distances in the source set of colors for the determined permutations; and selecting one of the positions to be used as the color scheme based on the deltas being minimized with respect to the deltas for the other determined positions.
 12. The method according to claim 11 further comprising replacing the colors in the target set of colors with the colors in the selected position.
 13. The method according to claim 11 wherein the target set of colors is associated with a web application, and further comprising generating a stylesheet to map the source set of colors to the target set of colors based on the colors in the selected position, with the stylesheet being applied a next time the web application is accessed.
 14. The method according to claim 13 wherein the web application includes a plurality of web pages, and further comprising inspecting the plurality of web pages until all colors in all components of the stylesheet are mapped to the source set of colors to achieve consistency over the plurality of web pages.
 15. The method according to claim 14 further comprising adjusting the colors in the selected position based on user input.
 16. The method according to claim 11 wherein the distances between the colors in the source set of colors and the distances in the replaced colors for each position are limited to adjacent colors.
 17. The method according to claim 11 wherein the respective distances are determined using at least one of the following distance determination methods: an RGB Euclidian distance method, a Cielab Delta E method, and a color tolerance distance method.
 18. The method according to claim 11 further comprising determining the source set of colors based on analyzing at least one of the following: color schemes in a source web application, color schemes in a logo, and a user defined color scheme.
 19. The method according to claim 11 wherein in response to the source set of colors being monochrome, further comprising generating variants of the monochrome colors so as to expand the source set of colors.
 20. A non-transitory computer readable medium for operating a computing system to generate a color scheme, and with the non-transitory computer readable medium having a plurality of computer executable instructions for causing the computing system to perform steps comprising: determining distances between colors in a source set of colors to be used in the color scheme; determining positions of colors in a target set of colors that can be replaced with the colors in the source set of colors; determining deltas between distances in the replaced colors and the distances in the source set of colors for the determined permutations; and selecting one of the positions to be used as the color scheme based on the deltas being minimized with respect to the deltas for the other determined positions. 